
package avaliacao.Handler;

import avaliacao.Constantes;
import avaliacao.DTO.DTOAvaliador;
import avaliacao.DAO.DAOAvaliador;
import avaliacao.Exception.Err;
import avaliacao.Util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class EdicaoAvaliadorHandler implements HandlerInterface {

    DAOAvaliador daoAvaliador = new DAOAvaliador();

    public String process(HttpServletResponse response, HttpServletRequest request) {

        DTOAvaliador avaliador = new DTOAvaliador();
        String resultado = Constantes.MEC_OK_CADASTRO;

        avaliador.setNome(request.getParameter(Constantes.MEC_AVALIADOR_NOME_FORM_CAMPO));
        avaliador.setLogin(request.getParameter(Constantes.MEC_AVALIADOR_LOGIN_FORM_CAMPO));
        avaliador.setEmail(request.getParameter(Constantes.MEC_AVALIADOR_EMAIL_FORM_CAMPO));
        String grupo =request.getParameter(Constantes.MEC_AVALIADOR_GRUPO_FORM_CAMPO) ;
        if(grupo != null)
            avaliador.setGrupo(grupo);

         if (!verificarCampos(avaliador))
            resultado = Constantes.MEC_ERR_PREENCHIMENTO_FORM_INVALIDO;
         else
        {
            if(!daoAvaliador.atualizarAvaliador(avaliador))
                resultado = Constantes.MEC_ERR_CADASTRO;
        }

        request.setAttribute(Constantes.MEC_ATRIBUTO_STATUS, resultado);
        request.setAttribute(Constantes.MEC_ATRIBUTO_RESULT_BUSCA, avaliador);

        return "/edicaoAvaliador.jsp";

    }

     private boolean verificarCampos(DTOAvaliador avaliador)
    {
         Boolean check=true;
        if(avaliador.getNome().trim().length() != 0)
            if(!(Util.verificarCamposAlfabeticos(avaliador.getNome(),
                                                Constantes.MEC_AVALIADOR_NOME_TAM_MIN,
                                                Constantes.MEC_NOME_CARACTERES_VALIDOS).equals(Err.OK))){
                check=false;
                return check;
            }

        if(avaliador.getEmail().trim().length() != 0)
            if(!(Util.verificarCamposAlfabeticos(avaliador.getEmail(),
                                                Constantes.MEC_AVALIADOR_EMAIL_TAM_MIN,
                                                Constantes.MEC_EMAIL_CARACTERES_VALIDOS).equals(Err.OK))){
                check=false;
                return check;
            }

        return (check);
    }
}
